const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'build.js',
    // __dirname nodejs的变量 表示当前文件目录的绝对路径
    path: path.resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      },
      {
        test: /\.less$/,
        use: [
          'style-loader',
          'css-loader',
          'less-loader'
        ]
      },
      {
        // url-loader依赖于file-loader
        test: /\.(jpg|png|gif)$/,
        use: [
          {
            loader: 'url-loader',
            options: {
              // 图片大小小于8KB，就会被base64处理
              // 优点：减少请求数量(减轻服务器压力)
              // 缺点：图片体积更大（文件请求速度更慢）
              limit: 10 * 1024,
              outputPath: 'images/',
              // [hash:10]取图片的hash的前10位
              // [ext]取文件原来的扩展名
              name: '[hash:10].[ext]'
            }
          }
        ]
      },
      {
        test: /\.(html|html)$/,
        use: ['html-loader']
      },
      {
        // 或者用exclude include
        // test: /\.*$/,
        // 或 exclude: /\.(css|js|html|png)$/
        include: path.resolve(__dirname, "src/font"),
        use: [{
          loader: 'file-loader',
          options: {
            name: '[hash:10].[ext]',
            outputPath: 'font/',
          }
        }]
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development',
  devServer: {
    contentBase: path.resolve(__dirname, 'build'),
    // 启动 gzip 压缩
    compress: true,
    // 端口号
    port: 10086,
    // 自动打开浏览器
    open: true
  }
}
